# -*- coding: utf-8 -*-
# @Time    : 2021/11/07 19:16
# @Author  : XIEHAO
# @Email   : xiehao_1989@126.com
# File     : utils.py
# @Software: PyCharm
from django.contrib.auth.models import Group
from rest_framework.permissions import BasePermission


class MyPermission(BasePermission):
    # 重写权限认证方法
    def has_permission(self, request, view):
        user = request.user  # 获取请求中的用户数据
        # 获取有权限的分组，老师
        group = Group.objects.filter(name='老师').first()
        # 获取令牌所属用户的分组
        groups = user.groups.all()  # user表和groups表联合查询
        return user.is_superuser or group in groups
        """
        user.is_superuser: 用户是不是超级用户
        group in groups: 有权限的分组在用户所属的分组里
        """


def jwt_token(token, user=None, request=None):
    """自定义登录成功返回数据处理函数，不定义只返回token令牌，定义了可以返回用户名"""
    data = {
        'token': token,
        'username': user.username
    }
    return data
